﻿using System;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020001A2 RID: 418
	public abstract class Poser : SolverManager
	{
		// Token: 0x0600089C RID: 2204
		public abstract void AutoMapping();

		// Token: 0x0600089D RID: 2205
		protected abstract void InitiatePoser();

		// Token: 0x0600089E RID: 2206
		protected abstract void UpdatePoser();

		// Token: 0x0600089F RID: 2207
		protected abstract void FixPoserTransforms();

		// Token: 0x060008A0 RID: 2208 RVA: 0x0002ED71 File Offset: 0x0002D171
		protected override void UpdateSolver()
		{
			if (!this.initiated)
			{
				this.InitiateSolver();
			}
			if (!this.initiated)
			{
				return;
			}
			this.UpdatePoser();
		}

		// Token: 0x060008A1 RID: 2209 RVA: 0x0002ED96 File Offset: 0x0002D196
		protected override void InitiateSolver()
		{
			if (this.initiated)
			{
				return;
			}
			this.InitiatePoser();
			this.initiated = true;
		}

		// Token: 0x060008A2 RID: 2210 RVA: 0x0002EDB1 File Offset: 0x0002D1B1
		protected override void FixTransforms()
		{
			if (!this.initiated)
			{
				return;
			}
			this.FixPoserTransforms();
		}

		// Token: 0x04000568 RID: 1384
		public Transform poseRoot;

		// Token: 0x04000569 RID: 1385
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x0400056A RID: 1386
		[Range(0f, 1f)]
		public float localRotationWeight = 1f;

		// Token: 0x0400056B RID: 1387
		[Range(0f, 1f)]
		public float localPositionWeight;

		// Token: 0x0400056C RID: 1388
		private bool initiated;
	}
}
